HTMLify

script.js
Views: 43 | Author: cody
$(document).ready(function() {

	let round = 1;
	let colors = [];
	let counter = 1;
	let counterSequence = 0;
	let counterPlayer = 0;
	let stop = 'off';
	let colour;
	let timeDelaySequence = 1000;
	
	function playLoad() {
		$('#btn-start').on('click', function() {
			$(this).parent().addClass('hide');
			setTimeout(  sequence, timeDelaySequence / 2 );
		});
	}

	function aleatory() {
		numberAleatory = 1 + Math.floor(Math.random() * 4);
		numberAleatory == 1 ? colour = 'red' : '';
		numberAleatory == 2 ? colour = 'green' : '';
		numberAleatory == 3 ? colour = 'blue' : '';
		numberAleatory == 4 ? colour = 'yellow' : '';
		colourActual = colour;
		return colour;
	}

	function sequence() {
		stop = 'off';
		$('#result').text('Playing...');
		$('#round-level').text(`You have reached the level ${ round }`);
		$('#round').text(round);

		for( i = 0; i < counter; i++ ) {
			colors[i] = aleatory();
		}

		followSequence();
	}

	function followSequence() {

		if ( counterSequence < colors.length && stop != 'on' ) {
			reproduce(colors[counterSequence]);
			counterSequence++;
			setTimeout( followSequence, timeDelaySequence );
		}

	}

	function reproduce(vColour) {

		let sound = $(`.${ vColour }`).attr('data-sound');
		new Audio(sound).play();
		$(`.${ vColour }`).addClass('active');

		setTimeout( function() {
			$(`.${ vColour }`).removeClass('active');
		}, timeDelaySequence / 2);
		
	}

	function resetPlay() {
		$('.modal').removeClass('hide');
		
		round = 1;
		colors = [];
		counter = 1;
		counterSequence = 0;
		counterPlayer = 0;
	 	stop = 'off';
	}

	$('.colors').on('click', function() {

		stop = 'on';

		if ( $(this).hasClass(colors[counterPlayer]) ) {
			let sound = $(this).attr('data-sound');
			new Audio(sound).play();
			counterPlayer++;

			if ( counterPlayer == colors.length ) {
				$('#result').text('Good :)');
				counter++;
				round++;
				counterSequence = 0;
				counterPlayer = 0;
				setTimeout( sequence, timeDelaySequence * 2 );
			}
		} else {
				let soundLose = new Audio('https://s3-us-west-2.amazonaws.com/s.cdpn.io/507450/Fail.wav');
				soundLose.play();
				$('#result').text('You Lost :(');
				resetPlay();
			}

	});

	playLoad();

});

Comments